{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "给定两个数组，编写一个函数来计算它们的交集。\n",
    "\n",
    "**示例 1:**\n",
    "\n",
    "<pre>\n",
    "**输入:** nums1 = [1,2,2,1], nums2 = [2,2]\n",
    "**输出:** [2,2]\n",
    "</pre>\n",
    "\n",
    "**示例 2:**\n",
    "\n",
    "<pre>\n",
    "**输入:** nums1 = [4,9,5], nums2 = [9,4,9,8,4]\n",
    "**输出:** [4,9]\n",
    "</pre>\n",
    "\n",
    "**说明：**\n",
    "\n",
    "* 输出结果中每个元素出现的次数，应与元素在两个数组中出现的次数一致。\n",
    "* 我们可以不考虑输出结果的顺序。\n",
    "\n",
    "****进阶:****\n",
    "\n",
    "* 如果给定的数组已经排好序呢？你将如何优化你的算法？\n",
    "* 如果 _nums1_ 的大小比 _nums2_ 小很多，哪种方法更优？\n",
    "* 如果 _nums2_ 的元素存储在磁盘上，磁盘内存是有限的，并且你不能一次加载所有的元素到内存中，你该怎么办？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from typing import *\n",
    "\n",
    "class Solution:\n",
    "    def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:\n",
    "        data = []\n",
    "        for i in nums1:\n",
    "            if i in nums2:\n",
    "                data.append(i)\n",
    "                nums2.remove(i)\n",
    "        return data"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
